import java.nio.file.Path
import java.nio.file.Paths
import java.time.LocalDate
import java.time.format.DateTimeFormatter

/**
 * 配置对象，包含文件操作的相关常量和方法
 */
object Config {
    // 文件后缀名，用于标识草稿文件
    const val FILE_SUFFIX_NAME: String = "草稿"
    // 文件类型后缀，此处为Markdown文件
    const val FILE_TYPE_SUFFIX: String = ".md"
    // 文件保存路径，默认为用户的桌面
    val FILE_PATH: Path = Paths.get(System.getenv("USERPROFILE"), "desktop")

    /**
     * 获取当前日期格式化的文件名
     * 文件名格式为：MM-dd+文件后缀名+文件类型后缀
     *
     * @return 当前日期格式化的文件名
     */
    fun getTodayFileName(): String {
        val today: LocalDate = LocalDate.now()
        val formatter = DateTimeFormatter.ofPattern("M-d")
        val fileName: String = formatter.format(today) + FILE_SUFFIX_NAME + FILE_TYPE_SUFFIX
        return fileName
    }

    /**
     * 获取插件列表
     * 读取resources下的plugins.txt文件，返回其中列出的插件名称列表
     *
     * @return 插件名称列表 如果plugins.txt文件不存在，则返回空列表
     */
    fun getPlugins(): List<String> {
        val pluginsFile = javaClass.classLoader.getResourceAsStream("plugins.txt")
        if (pluginsFile != null) {
            return pluginsFile.bufferedReader().readLines()
        }
        return listOf()
    }
}
